                                    ======================================================
                                    |                                                    |            
                                    |                  Plants vs Zombies                 |   
                                    |                                                    |
                                    |                   by Wan YuXiang                   |
                                    |                                                    |
                                    |               with contributions from              | 
                                    |                                                    |
                                    |                   Daniel Gromann                   |
                                    |                                                    |
                                    ======================================================


"Plants vs Zombies" is a game for the ZX Spectrum using a slightly modified game engine from Matthew Smith's classic game "Jet Set Willy" (Software Projects, 1984). It can be played on a real ZX Spectrum (48K or higher), on any of its modern clones or on a computer, game console or another device using a ZX Spectrum emulator.

----------------------------------------------------------------------

I. Game history

UncleWan (Wan YuXiang/万宇翔）, a resident of Yangzhou, a city in China's Jiangsu province, discovered "Jet Set Willy" ("JSW") around 2021 and quickly became fascinated by its style of platform gameplay. Although various technical difficulties related to internet access and connectivity made it harder for him to explore the game and its community, he nevertheless continued researching it using the resources available to him online. Over time, he discovered many different versions and ports of JSW and "Manic Miner" ("MM"), including Java, PC and Z88 adaptations, and became deeply interested in the history and legacy of the two games. His enthusiasm for "MM" even led him to write an article about it for Baidu Baike, the Chinese online encyclopaedia (https://baike.baidu.com/item/%E7%96%AF%E7%8B%82%E7%9F%BF%E5%B7%A5/1186578?fr=ge_ala). Upon eventually discovering the JSW/MM forum at jswmm.co.uk in April 2024, he was delighted to find an active community dedicated to the games he had come to enjoy so much.

In April 2025 Wan started working on a new JSW game inspired by "Plants vs. Zombies", a 2009 tower defence video game developed and published by PopCap Games Ltd. He used John Elliott's JSWED editor for his work. In April 2025, when he ran into some technical problems, he reached out to Daniel Gromann who helped him resolve the issue and offered his assistance in enriching the game with some additional elements and with playtesting.

Wan continued his work on "Plants vs Zombies" throughout 2025. He sent the game to Daniel for playtesting in early 2026. Daniel applied a number of technical improvements and volunteered to expand it further, adding various in-game tunes, some new rooms and other enhancements. As a result of this collaboration, the final game file was ready, fully playtested, and then released in May 2026.

----------------------------------------------------------------------

II. Background story

Willy survived wave after wave of zombie attacks with the help of the plants. Zomboss, in order to end Willy's resistance, captured the source of the plants' power—the Sunflower—and locked it in a cage. While the Sunflower was imprisoned, the plants lost their vitality and went berserk. It was during this time that the zombies also invaded Willy's mansion.

Willy hid in his temporary shelter. Sunflowers had left some solar energy all over the mansion before being captured. He needed to collect it to restore the plants to calm, then rescue the sunflowers and reorganize the forces to resist the zombies.

----------------------------------------------------------------------

III. Instructions

Guide Willy to collect all of the 256 flashing Sun Power items scattered around the game map so he can save Sunflower from zombies and rescue his plants. You need to do it before 1 a.m. Avoid the moving and unmoving guardians, as well as the stationary nasties, which may kill you. The last item to be collected is located next to Sunflower. With all the others collected previously, grab it and then...

Use O-left, P-right (or a combination of keys from the top row of letters) and SPACE, or any of the letters from the bottom row, to jump. A-G pauses the game, H-ENTER/RETURN unpauses it (as do the movement keys) and also toggles the music ON/OFF.

Pressing SHIFT and SPACE together at the same time abandons the current game (showing the Game Over screen and then returning to the title screen). Pressing these keys after the game has been completed takes you straight back to the title screen.

The teleportation cheat code works in "Plants vs Zombies", but it is activated in a room with a different technical number than in the original "JSW", and the password is not WRITETYPER any more...

----------------------------------------------------------------------

IV. Credits, acknowledgements and thanks

1. General idea and game engine

"Plants vs Zombies" is a redesign of Matthew Smith's "JSW". It uses the game engine (somewhat modified) from the original game. Huge thanks go to Matthew Smith for creating the timeless original!

"Plants vs. Zombies" by PopCap Games Ltd provided the inspiration for the setting of this new JSW game, with plants and zombies making up most of the guardians.


2. Rooms

Most of the rooms in the game were designed by Wan YuXiang, while the rooms to the right and below "Big Trouble with Little Zombies" were designed by Daniel Gromann. In this group of rooms some building blocks (cells) were copied from earlier games by other authors, such as the DrUnKeN mAsTeR!!!, Stuart J. Hill and Carl Paterson.


3. Guardian sprites

Most of the sprites used in the game were designed by Wan YuXiang. Several are redesigns of sprites from the original "JSW". The insect (seen as a vertical guardian e.g. in "Re-Emergence of the Long River") was designed by Daniel Gromann.


4. Music

The title-screen tune was coded by Wan YuXiang.

Among the 10 in-game tunes used in the game (most of them 128 bytes long, i.e. twice as long as the in-game tune in the original "JSW"), more than half were coded by Daniel Gromann and the rest by Wan YuXiang. None of these tunes had ever been used in a ZX Spectrum JSW game before.

Richard Hallas's document "A Miner Triad. Music in Jet-Set Willy and both versions of Manic Miner" (https://hallas.net/Software/music.htm) was instrumental (no pun intended) in managing and coding the music.

The technical solution for the tunes to be played from various memory locations had been created jointly by Daniel Gromann and Ian Rushforth (IRF). Furthermore, Ian's innovations related to in-game music allowed the introduction of 128-byte-long tunes (https://jswmm.co.uk/topic/186-playing-around-with-the-in-game-tune-in-jsw/) and Ian's fix for the first missing note of the in-game tune was applied in the game.

The code that initiates the in-game tune from the first note if a different tune was playing before Willy entered the current room (or continues if the same tune was playing) was written by Daniel Gromann.


5. Loading screen

The loading screen was created together by Daniel Gromann and Wan YuXiang. The moon graphic was copied from games by the DrUnKeN mAsTeR!!!.


6. Font

The font used in the game was created by Damien Guard. It is called "Fatality" (https://damieng.com/typography/zx-origins/fatality/). According to Damien, he designed the font in 2018 in BASIN, based on his memory of the "Mortal Kombat" games, particularly the style of the iconic “FIGHT!” message (Damien notes that the final design reflects his recollection of the font rather than an exact recreation of how it actually appeared in the original games).

Andrew Broad's "Technical Notes" on his 2002 game "Goodnite Luddite" were helpful in implementing the new font in "Plants vs Zombies".


7. Technical modifications

"Plants vs Zombies" features various modifications of the original game engine. A list of related credits is presented below.

The game was created using John Elliott's excellent JSW Editor (JSWED, http://www.seasip.info/Jsw/jswed.html). John's adjacent ropes patch (new) was applied in the game.

All technical modifications to the game were applied by Daniel Gromann, who also created the custom BASIC loader.

Richard Dymond (SkoolKid)'s complete JSW disassembly (https://skoolkid.github.io/jetsetwilly/) was instrumental in applying technical modifications to the original game code.

Jonathan Graham Harston's extension of the JSW48 game engine which allows more than 64 rooms (by using 7-bit instead of 6-bit room numbers) was applied in the game (http://mdfs.net/Software/JSW/JGH/).

Selected modifications originally used in games created with "Softricks JSW Editor Mark II" were applied, allowing the doubling of the number of guardian classes in the game (please see John Elliott's info at https://www.seasip.info/Jsw/softricks.html for more details). 

Norman Sword's solution to fix the "Jagged Finger" and "Delayed Attribute" flaws in the Jet Set Willy game engine as well as his optimisation of the Game Over sequence were applied in the game.

Andrew Broad's solution to set the player's sprite individually in each room (inspired by the solution earlier created by Geoff Eddy) was applied in the game. Andrew's "Technical Notes" on his 2000 game "Jet Set Willy: The Lord of the Rings" were helpful in implementing this solution in "Plants vs Zombies".

Stuart Brady (Zub)'s Cell Graphics Bug Fix was applied in the game.

The Binary Hex Converter (https://www.binaryhexconverter.com/) was the standard tool used to convert values back and forth between the decimal and hexadecimal systems while introducing changes to the game's code.

Claus Jahn's ZX-Modules (formerly at http://www.zx-modules.de) were very helpful in creating the game, especially ZX-Paintbrush for the loading screen, ZX-Editor for the BASIC loader and ZX-Blockeditor for producing the final TAP and TZX game files.

Andy Ford (Spider)'s Screen Compressor (https://jswmm.co.uk/files/file/77-screen-compress/) was used to compress the loading screen.

The ZX Spin emulator (https://www.zophar.net/sinclair/zx-spin.html) was used to copy and paste blocks of code and also to playtest the game.

Jonathan Needle's Spectaculator (https://www.spectaculator.com/) was used to playtest the game.

----------------------------------------------------------------------

V. Internet links

JSW Central (https://jswcentral.org) is a comprehensive website dedicated exclusively to ZX Spectrum games using Manic Miner and Jet Set Willy game engines and their various minor mods and versions. It includes an up-to-date, complete list of Spectrum games created using the MM and JSW game engines, a chronology of their development, individual pages for all games and versions including download links and screenshot galleries, and other resources.

The JSW Central YouTube channel (https://www.youtube.com/@jswcentral) contains videos of walkthroughs of MM and JSW games for the Spectrum, showing games completed as smoothly, elegantly and efficiently as possible, while aiming to achieve the best completion time (in JSW games) or the highest score (in MM games), with no unnecessary loss of life.

Jet Set Willy & Manic Miner Community (https://jswmm.co.uk/) is currently the best place for Willy-based discussion, game development and fun.

----------------------------------------------------------------------

VI. Final remarks

We hope you will enjoy playing "Plants vs Zombies" as much as we enjoyed creating it.

The game can be completed without losing a single life. If you need some assistance, POKE 35899,0 will give you infinite lives. However, saving and reloading snapshots on an emulator or using the Rollback feature is a more elegant way to complete the game and will be more effective if you come across a multiple-death scenario (getting killed repeatedly upon entrance to a room).

You can contact Wan at 2940323108@qq.com and Daniel at jetsetdanny@yahoo.com for any feedback or questions related to "Plants vs Zombies". It will be very rewarding for us to know that you have played the game, so please do let us know about it - even without any specific comments! The biggest gratification and encouragement for anyone designing free games is to know that someone else has played them!

Play, enjoy, and let us know what you think of the game!

Daniel & Wan

17 May 2026